/*
 * SASettingItemList.h
 *
 *  Created on: 2010-06-04
 *      Author: NONO
 */

#ifndef __SASETTINGITEMLIST_H__
#define __SASETTINGITEMLIST_H__

// INCLUDES

// System includes
#include <aknsettingitemlist.h> // CAknSettingItemList

// CLASS DECLARATION
class CSASettings;
class CSASettingslistContainer;

/**
*
* @class    CSASettingItemList SASettingItemList.h 
* @brief    This is the SettingItemList class for a setting list example based on the
* standard Symbian OS architecture.  
*
* 
*/
class CSASettingItemList : public CAknSettingItemList
    {

        enum TSettingItemListIndicator      // current setting list
            {
                EIdle,
                ESettingList,
                EProtectionSettingList
            };
        
public: // Constructors and destructor
        CSASettingItemList(CSASettings& aSettings, 
            CSASettingslistContainer& aContainer);
    
public: // from CAknSettingItemList
    CAknSettingItem* CreateSettingItemL(TInt identifier);
    void EditItemL (TInt aIndex, TBool aCalledFromMenu);
    
    /**
    * From CoeControl, HandleResourceChange.
    */
    virtual void HandleResourceChange(TInt aType);
    
public:// members
    void ChangeSelectedItemL ();
    
public:// user function
    void UpdateItemL(TInt aIndex,TBool aRedraw);
    void SetItemFocus(TInt aIndex);
    
private: // from CAknSettingItemList
    void SizeChanged();

private: // member data
    CSASettings&                iSettings;
    CSASettingslistContainer&   iContainer;
    TSettingItemListIndicator       iCurrentSettingList;
    RFs& iFs;
    };

#endif /* __SASETTINGITEMLIST_H__ */
